package com.fowo.api.model.process.product;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 加工单 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class ProcessProductImportPo {

  /** 单号 */
  @ExcelProperty("单号")
  private String processSn;

  /** 供应商 */
  @ExcelProperty("供应商")
  @Size(max = 50, message = "供应商长度不能超过50")
  private String supplierSupplierName;

  @ExcelIgnore
  @Schema(title = "供应商")
  private String supplier;

  /** 加工日期 */
  @ExcelProperty("加工日期")
  @DateTimeString(message = "加工日期不是有效的时间日期格式")
  private String pdate;

  /** 仓库 */
  @ExcelProperty("*仓库")
  @NotBlank(message = "仓库不能为空")
  @Size(max = 50, message = "仓库长度不能超过50")
  private String widName;

  @ExcelIgnore
  @Schema(title = "*仓库")
  private String wid;

  /** 单据类型 */
  @ExcelProperty("*单据类型")
  @NotBlank(message = "单据类型不能为空")
  @EnumsString(value = { "加工单" }, message = "单据类型只能是“加工单”中的一个")
  private String type;

  /** 状态 */
  @ExcelProperty("状态")
  @EnumsString(
    value = { "草稿", "已提交" },
    message = "状态只能是“草稿”, “已提交”中的一个"
  )
  private String status;

  /** 推送应付单 */
  @ExcelProperty("推送应付单")
  @EnumsString(
    value = { "未推送", "失败", "成功" },
    message = "推送应付单只能是“未推送”, “失败”, “成功”中的一个"
  )
  private String generateAp;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 500, message = "备注长度不能超过500")
  private String remarks;

  /** 入库单 */
  @ExcelProperty("入库单")
  @Size(max = 50, message = "入库单长度不能超过50")
  private String whid;

  /** 入库单号 */
  @ExcelProperty("入库单号")
  @Size(max = 50, message = "入库单号长度不能超过50")
  private String wcode;
}
